package model

import java.util.Date
import scala.collection.mutable.ArrayBuffer
import exceptions.MontoInvalidoException
import exceptions.RegistroInconsistenteException
import java.util.Calendar

abstract class Registro extends ChequeoAnhoDelRegistro with ChequeoImporteDeVentasMayorACero {
	val empresa: Empresa
	val _ventas: Float
	val _ganancias: Float
	val _anho: Integer
	val _anhoDeRegistro: Integer
	val verificador: VerificadorDeConsistencia= new VerificadorDeConsistencia
	
	def anhoDeRegistro():Integer= _anhoDeRegistro 
	
	def esConsistenteStrategy():Boolean={
	 verificador.conVerificador(new VerificadorDeMontoValido)
	 verificador.conVerificador(new VerificadorDeFechaDeCreacionValida)
	 verificador.verificar(this)
	}
	
	def esConsistenteMixin():Boolean= chequeo
     
	def esRegistroConocido():Boolean
  
	def anho(): Integer= _anho
  
	def ventas(): Float= _ventas
  
	def ganancias() :Float= _ganancias
  
	def tasaDeGanancias(): Float= (ganancias / ventas) * 100
}